Dispersing Proprietary Applications as Benchmarks through Code Mutation
Identifieur interne : 001425 ( Main/Exploration ); précédent : 001424; suivant : 001426Dispersing Proprietary Applications as Benchmarks through Code Mutation
Auteurs : Luk Van Ertvelde [Belgique] ; Lieven Eeckhout [Belgique]Source :
- ACM SIGPLAN notices [ 1523-2867 ] ; 2008.
Descripteurs français
- Pascal (Inist)
- Langage programmation, Logiciel libre, Serveur informatique, Accès mémoire, Sécurité informatique, Hypermédia, Gestion mémoire, Evaluation performance, Rétroingénierie, Contrôle accès, Architecture logiciel, Ramification, Réécriture, Dépendance donnée, Caractéristique fonctionnement, Microarchitecture.
- Wicri :
- topic : Langage de programmation, Hypermédia.
English descriptors
- KwdEn :
Abstract
Industry vendors hesitate to disseminate proprietary applications to academia and third party vendors. By consequence, the bench-marking process is typically driven by standardized, open-source benchmarks which may be very different from and likely not representative of the real-life applications of interest. This paper proposes code mutation, a novel technique that mutates a proprietary application to complicate reverse engineering so that it can be distributed as a benchmark. The benchmark mutant then serves as a proxy for the proprietary application. The key idea in the proposed code mutation approach is to preserve the proprietary application's dynamic memory access and/or control flow behavior in the benchmark mutant while mutating the rest of the application code. To this end, we compute program slices for memory access operations and/or control flow operations trimmed through constant value and branch profiles; and subsequently mutate the instructions not appearing in these slices through binary rewriting. Our experimental results using SPEC CPU2000 and MiBench benchmarks show that code mutation is a promising technique that mutates up to 90% of the static binary, up to 50% of the dynamically executed instructions, and up to 35% of the at run time exposed inter-operation data dependencies. The performance characteristics of the mutant are very similar to those of the proprietary application across a wide range of microarchitectures and hardware implementations.
Affiliations:
Links toward previous steps (curation, corpus...)
- to stream PascalFrancis, to step Corpus: 000079
- to stream PascalFrancis, to step Curation: 000070
- to stream PascalFrancis, to step Checkpoint: 000064
- to stream Main, to step Merge: 001429
- to stream Main, to step Curation: 001425
Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en" level="a">Dispersing Proprietary Applications as Benchmarks through Code Mutation</title>
<author><name sortKey="Van Ertvelde, Luk" sort="Van Ertvelde, Luk" uniqKey="Van Ertvelde L" first="Luk" last="Van Ertvelde">Luk Van Ertvelde</name>
<affiliation wicri:level="3"><inist:fA14 i1="01"><s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName><region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
<author><name sortKey="Eeckhout, Lieven" sort="Eeckhout, Lieven" uniqKey="Eeckhout L" first="Lieven" last="Eeckhout">Lieven Eeckhout</name>
<affiliation wicri:level="3"><inist:fA14 i1="01"><s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName><region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">INIST</idno>
<idno type="inist">08-0302886</idno>
<date when="2008">2008</date>
<idno type="stanalyst">PASCAL 08-0302886 INIST</idno>
<idno type="RBID">Pascal:08-0302886</idno>
<idno type="wicri:Area/PascalFrancis/Corpus">000079</idno>
<idno type="wicri:Area/PascalFrancis/Curation">000070</idno>
<idno type="wicri:Area/PascalFrancis/Checkpoint">000064</idno>
<idno type="wicri:doubleKey">1523-2867:2008:Van Ertvelde L:dispersing:proprietary:applications</idno>
<idno type="wicri:Area/Main/Merge">001429</idno>
<idno type="wicri:Area/Main/Curation">001425</idno>
<idno type="wicri:Area/Main/Exploration">001425</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a">Dispersing Proprietary Applications as Benchmarks through Code Mutation</title>
<author><name sortKey="Van Ertvelde, Luk" sort="Van Ertvelde, Luk" uniqKey="Van Ertvelde L" first="Luk" last="Van Ertvelde">Luk Van Ertvelde</name>
<affiliation wicri:level="3"><inist:fA14 i1="01"><s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName><region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
<author><name sortKey="Eeckhout, Lieven" sort="Eeckhout, Lieven" uniqKey="Eeckhout L" first="Lieven" last="Eeckhout">Lieven Eeckhout</name>
<affiliation wicri:level="3"><inist:fA14 i1="01"><s1>Department of Electronics and Information Systems (ELIS), Ghent University St.-Pietersnieuwstraat 41</s1>
<s2>9000 Gent</s2>
<s3>BEL</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Belgique</country>
<placeName><region type="province" nuts="2">Province de Flandre-Orientale</region>
<settlement type="city">Gand</settlement>
</placeName>
</affiliation>
</author>
</analytic>
<series><title level="j" type="main">ACM SIGPLAN notices</title>
<title level="j" type="abbreviated">ACM SIGPLAN not.</title>
<idno type="ISSN">1523-2867</idno>
<imprint><date when="2008">2008</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt><title level="j" type="main">ACM SIGPLAN notices</title>
<title level="j" type="abbreviated">ACM SIGPLAN not.</title>
<idno type="ISSN">1523-2867</idno>
</seriesStmt>
</fileDesc>
<profileDesc><textClass><keywords scheme="KwdEn" xml:lang="en"><term>Access control</term>
<term>Branching</term>
<term>Computer security</term>
<term>Computer server</term>
<term>Data dependency</term>
<term>Hypermedia</term>
<term>Microarchitecture</term>
<term>Open source software</term>
<term>Performance characteristic</term>
<term>Performance evaluation</term>
<term>Programming language</term>
<term>Reverse engineering</term>
<term>Rewriting</term>
<term>Software architecture</term>
<term>Storage access</term>
<term>Storage management</term>
</keywords>
<keywords scheme="Pascal" xml:lang="fr"><term>Langage programmation</term>
<term>Logiciel libre</term>
<term>Serveur informatique</term>
<term>Accès mémoire</term>
<term>Sécurité informatique</term>
<term>Hypermédia</term>
<term>Gestion mémoire</term>
<term>Evaluation performance</term>
<term>Rétroingénierie</term>
<term>Contrôle accès</term>
<term>Architecture logiciel</term>
<term>Ramification</term>
<term>Réécriture</term>
<term>Dépendance donnée</term>
<term>Caractéristique fonctionnement</term>
<term>Microarchitecture</term>
</keywords>
<keywords scheme="Wicri" type="topic" xml:lang="fr"><term>Langage de programmation</term>
<term>Hypermédia</term>
</keywords>
</textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">Industry vendors hesitate to disseminate proprietary applications to academia and third party vendors. By consequence, the bench-marking process is typically driven by standardized, open-source benchmarks which may be very different from and likely not representative of the real-life applications of interest. This paper proposes code mutation, a novel technique that mutates a proprietary application to complicate reverse engineering so that it can be distributed as a benchmark. The benchmark mutant then serves as a proxy for the proprietary application. The key idea in the proposed code mutation approach is to preserve the proprietary application's dynamic memory access and/or control flow behavior in the benchmark mutant while mutating the rest of the application code. To this end, we compute program slices for memory access operations and/or control flow operations trimmed through constant value and branch profiles; and subsequently mutate the instructions not appearing in these slices through binary rewriting. Our experimental results using SPEC CPU2000 and MiBench benchmarks show that code mutation is a promising technique that mutates up to 90% of the static binary, up to 50% of the dynamically executed instructions, and up to 35% of the at run time exposed inter-operation data dependencies. The performance characteristics of the mutant are very similar to those of the proprietary application across a wide range of microarchitectures and hardware implementations.</div>
</front>
</TEI>
<affiliations><list><country><li>Belgique</li>
</country>
<region><li>Province de Flandre-Orientale</li>
</region>
<settlement><li>Gand</li>
</settlement>
</list>
<tree><country name="Belgique"><region name="Province de Flandre-Orientale"><name sortKey="Van Ertvelde, Luk" sort="Van Ertvelde, Luk" uniqKey="Van Ertvelde L" first="Luk" last="Van Ertvelde">Luk Van Ertvelde</name>
</region>
<name sortKey="Eeckhout, Lieven" sort="Eeckhout, Lieven" uniqKey="Eeckhout L" first="Lieven" last="Eeckhout">Lieven Eeckhout</name>
</country>
</tree>
</affiliations>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Belgique/explor/OpenAccessBelV2/Data/Main/Exploration
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 001425 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd -nk 001425 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Belgique |area= OpenAccessBelV2 |flux= Main |étape= Exploration |type= RBID |clé= Pascal:08-0302886 |texte= Dispersing Proprietary Applications as Benchmarks through Code Mutation }}
This area was generated with Dilib version V0.6.25. |